The invention relates to a signal processing device and a method of planning the allocation of time-slots in which connections are made between inputs and outputs of processors via a switch-matrix.
Such a signal processing device is known from U.S. Pat. No. 5,103,311. This device contains a number of processing elements which execute various stages of a video signal processing task in true concurrency. A processing element receives signal samples of signal streams at an input, processes the signal samples and outputs signal samples of a processed signal stream at an output. The streams are communicated between the processing elements via a switch matrix, which establishes a number of connections in parallel, each between the input of a processing element and the output of a source of the signal stream to the input of the processing element. This source may be another processing element or an input of the device.
Each processing element has its own program. The program of a processing element determines from which other processing element samples of a signal stream are received via a switch matrix.
Many of the processing elements may execute several processes in a time-interleaved fashion. To support this, the connections made by the switch-matrix are switched over regularly to receive samples of different signal streams from different sources. These switch-overs are also programmed in the processing element. All connections that are made will thus have been arbited in the program well in advance of execution of the processes. In this way the efficiency of use of the switch matrix and the processing elements can be optimized at the time of programming and real time behaviour can be guaranteed.
However, the programmed arbitration has the disadvantage that the signal processing device lacks the flexibility needed to handle multimedia applications in which various combinations of signal streams have to be handled in different ways, some of them interactively.
An article in the ACM operating systems review 23 (3) pages 141-151 (1989), titled xe2x80x9cThe Real-Time Operating System of Marsxe2x80x9d, by A. Damm, J. Reisinger, W. Schwabl and H. Kopetz, teaches a distributed real time data processing system designed for process control. This system uses a single bus to which all inputs and outputs are connected. Real-time behaviour is guaranteed by allocating the bus in predetermined time-slots to transmission of hard real-time messages. The bus is allocated on request to other than hard real-time messages in unused time-slots. This automatically ensures that the inputs and outputs will be available for transmission when the bus is allocated, because with a bus, in contrast to the case of a switch, matrix, the inputs and outputs are dedicated to the single information channel that is allocated to various successive transmissions.
Amongst others, it is an object of the invention to provide for a signal processing device in which the efficiency of use of the processing elements and the switch-matrix can be optimized and in which real-time behaviour can be guaranteed for a number of signal streams, but which allows for more flexibility in handling signal streams.
The signal processing device according to the invention is characterized in that the arbiter is arranged to receive a request for making a further connection between a specified input and output for further communication between further processes during said plurality of time-slots and to select making said further connection in a time-slot in which said specified input and output are not used by the set of processes for communication of the signal streams for which the allocation is fixed in advance. The invention provides for fixed allocation of connections for a set of processes, so that the efficiency of these processes can be optimized and made to guarantee real-time behaviour. Preferably, the time-slots are allocated in a periodically recurring pattern, which can be programmed in a small memory. The arbiter can also make other connections for the duration of time-slots upon a run time request by the processes involved. These connections are made between inputs and outputs that are not used by the set of processes whose connections are allocated in advance. Unused inputs and output may occur for example because these inputs and outputs are not allocated in advance or because the processing elements indicate that the allocated input and/or output is not actually used by the set of processes at that time.
An embodiment of the processing device according to the invention is where each fraction provides for a succession of at least two samples of a signal stream communicated between an input and output in a time-slot. According to this embodiment the switch matrix always maintains connections between inputs and outputs for a duration so that more than one signal value can be transferred, but much less than an entire stream (or video) frame. This reduces the power consumed by the device because the switch matrix needs to switch less often. At the same time it ensures efficient utilization of the processing elements because it allows flexible switching between processes.
In an embodiment of the processing device according to the invention the allocation of time-slots is programmable. Thus, when a user requires a different function from the device, the set of processes executed by the device can be changed and an allocation that is optimal for the new set of processes can be implemented by the arbiter.
In a further embodiment of the processing device according to the invention first in first out buffers are used for the different streams arriving at a processing element for execution of different processes. In this way, the planning of the allocation can be made independent of the timing of execution of the different processes, so that optimal planning can be used.
The invention further includes a method of planning the allocation of time-slots in a way that ensures that the transmission capability of the switch-matrix can fully be used.